﻿#ifndef __DAHUA_GENICAM_TRANSPORTLAYERCONTROL_H__
#define __DAHUA_GENICAM_TRANSPORTLAYERCONTROL_H__

#include "Defs.h"
#include "GenICam/ParameterNode.h"

GENICAM_NAMESPACE_BEGIN

class ITransportLayerControl;

typedef Memory::TSharedPtr<ITransportLayerControl> ITransportLayerControlPtr;

/// \ingroup config
/// @{

/// \~chinese
/// \brief Class ITransportLayerControl TransportLayerControl涓嫔睘镐ф搷浣灭被
/// \~english
/// \brief Class ITransportLayerControl TransportLayerControl property's operation class 
class GENICAM_API ITransportLayerControl
{
public:
	virtual ~ITransportLayerControl() {}

public:
	/// \~chinese
	/// \brief 銮峰彇GevSCPD灞炴€ф搷浣滃璞★紝璁剧疆鍖呭彂阃侀棿闅?
	/// \return 杩斿洖灞炴€ф搷浣滃璞?
	/// \~english
	/// \brief get GevSCPD property operation object, set packet sending interval 
	/// \return property operation object
	virtual CIntNode gevSCPD() = 0;

	/// \~chinese
	/// \brief 銮峰彇GevCurrentIPConfigurationDHCP灞炴€ф搷浣滃璞★紝鏄惁鍚敤DHCP
	/// \return 杩斿洖灞炴€ф搷浣滃璞?
	/// \~english
	/// \brief get GevCurrentIPConfigurationDHCP property operation object, check whether activate DHCP or not
	/// \return property operation object
	virtual CBoolNode gevCurrentIPConfigurationDHCP() = 0;

	/// \~chinese
	/// \brief 銮峰彇GevCurrentIPConfigurationPersistentIP灞炴€ф搷浣滃璞★紝鏄惁鍚敤闱欐€両P
	/// \return 杩斿洖灞炴€ф搷浣滃璞?
	/// \~english
	/// \brief get GevCurrentIPConfigurationPersistentIP property operation object, check whether activate static IP or not
	/// \return property operation object
	virtual CBoolNode gevCurrentIPConfigurationPersistentIP() = 0;

	/// \~chinese
	/// \brief 銮峰彇GevPersistentIPAddress灞炴€ф搷浣滃璞★紝璁剧疆闱欐€両P鍦板潃
	/// \return 杩斿洖灞炴€ф搷浣滃璞?
	/// \~english
	/// \brief get GevPersistentIPAddress property operation object, set static IP
	/// \return property operation object
	virtual CStringNode gevPersistentIPAddress() = 0;

	/// \~chinese
	/// \brief 銮峰彇GevPersistentSubnetMask灞炴€ф搷浣滃璞★紝璁剧疆闱欐€両P瀛愮綉鎺╃爜
	/// \return 杩斿洖灞炴€ф搷浣滃璞?
	/// \~english
	/// \brief get GevPersistentSubnetMask property operation object, set static IP subnet mask
	/// \return property operation object
	virtual CStringNode gevPersistentSubnetMask() = 0;

	/// \~chinese
	/// \brief 銮峰彇GevPersistentDefaultGateway灞炴€ф搷浣滃璞★紝璁剧疆闱欐€両P缃戝叧
	/// \return 杩斿洖灞炴€ф搷浣滃璞?
	/// \~english
	/// \brief get GevPersistentDefaultGateway property operation object, set static IP gateway
	/// \return property operation object
	virtual CStringNode gevPersistentDefaultGateway() = 0;

    /// \~chinese
    /// \brief 銮峰彇GevGVCPHeartbeatDisable灞炴€ф搷浣滃璞★紝鏄惁锅灭敤GVCP Heartbeat
    /// \return 杩斿洖灞炴€ф搷浣滃璞?
	/// \~english
	/// \brief get GevGVCPHeartbeatDisable property operation object, check whether disable GVCP Heartbeat or not
	/// \return property operation object
    virtual CBoolNode gevGVCPHeartbeatDisable() = 0;

	/// \~chinese
	/// \brief 銮峰彇GevGVSPExtendedIDMode灞炴€ф搷浣滃璞★紝鏄惁鍚敤ChunkData
	/// \return 杩斿洖灞炴€ф搷浣滃璞?
	/// \~english
	/// \brief get GevGVSPExtendedIDMode property operation object, check whether disable GVCP ChunkData or not
	/// \return property operation object
	virtual CEnumNode gevGVSPExtendedIDMode() = 0;
};

/// @}

GENICAM_NAMESPACE_END

#endif // __DAHUA_GENICAM_TRANSPORTLAYERCONTROL_H__

